草庐IT

php sql同步等待

全部标签

c# - 为什么在 finally block 中不允许等待?

为什么await不允许出现在finallyblock中?publicasyncvoidFn(){try{}finally{awaitTask.Delay(4000);}}知道可以手动获取AwaiterpublicvoidFn(){try{}finally{varawaiter=Task.Delay(4000).GetAwaiter();}} 最佳答案 取自:Wherecan’tIuse“await”?Insideofacatchorfinallyblock.Youcanuse“await”insideofatryblock,rega

c# - 返工 EventWaitHandle 以异步等待信号

我需要更改当前代码,以便在调用EventWaitHandle.WaitOne时不阻塞当前线程。问题是我正在等待系统范围的事件。我还没有找到任何合适的替代品。代码:EventWaitHandlehandle=newEventWaitHandle(false,EventResetMode.AutoReset,"Localevent",outscreenLoadedSignalMutexWasCreated);StartOtherApp();if(screenLoadedSignalMutexWasCreated){isOtherAppFullyLoaded=handle.WaitOne(4

c# - lock 语句如何确保处理器内同步?

我有一个同时执行两个线程的小型测试应用程序。一个递增staticlong_value,另一个递减它。我已通过ProcessThread.ProcessorAffinity确保线程与不同的物理(无HT)内核相关联以强制处理器内部通信,并且我已确保它们在执行时间上重叠很长一段时间。当然,以下不会导致零:for(longi=0;i因此,合乎逻辑的结论是:for(longi=0;i这当然会导致零。但是,以下也会导致零:for(longi=0;i当然,lock语句确保读取和写入不会重新排序,因为它采用了全栅栏。但是,我找不到有关处理器高速缓存同步的任何信息。如果没有任何缓存同步,我想我应该在两个

c# - '等待'一个可观察的

我的情况是我有一个正在处理的任务列表(启用驱动器、改变位置、等待停止、禁用)。“等待”监控IObservable,我想等待它(这样我就可以通过ContinueWith和其他任务来处理它)。我开始在订阅者的OnNext处理中执行以下任务,但这很丑陋。我现在想到的是这种扩展方法:publicstaticTaskWaitFor(thisIObservablesource,Funcpred){vartcs=newTaskCompletionSource();source.Where(pred).DistinctUntilChanged().Take(1)//OnCompletestheobse

c# - 将同步方法变成异步方法

我正在尝试将一些旧代码的同步方法转换为异步方法,但我在理解时遇到了一些麻烦。从我读过的所有视频和教程来看,他们似乎正在创建两种方法:一种是实际功能,另一种是包装器,然后是在UI上调用的包装器。这是我的代码:privateasyncTasklogin(Stringusername,Stringpassword){vartcs=newTaskCompletionSource();RestSharp.RestRequestrequest=newRestSharp.RestRequest("/accounts/login/",RestSharp.Method.GET);RestSharp.IR

c# - 当你不能等待时,你怎么能等待任务

我正在开发Windows8运行时组件,因此公共(public)接口(interface)不能包含Task因为它不是Windows运行时类型。这意味着我无法将该方法标记为async不能awaitprivateasync我的库中的方法。这导致了对如何处理我的应用程序逻辑的一些困惑。这就是我同步做我想做的事情的方式。Resultr=TryGetAuthResultFromFile();if(r!=null){returnr;}r=GetAuthResultFromWebAuthenticationBroker();returnr;问题是TryGetResultFrom文件是asyncTask

c# - 在实现具有同步和异步 API 的库以实现相同功能时使用 async await

关于如何在库中提供相同功能的同步和异步实现,我有几个问题。我会先问他们,然后提供下面的示例代码(实际上很多,但实际上很简单)。有没有办法避免违反DRY原则?考虑JsonStreamReader.Read的实现,JsonStreamWriter.Write,JsonStreamWriter.Flush,ProtocolMessenger.Send,ProtocolMessenger.Receive及其异步版本。在对同一方法的同步和异步版本进行单元测试时,是否有一种方法可以避免违反DRY原则?我正在使用NUnit,尽管我想所有框架在这方面应该都是一样的。应该如何实现返回Task的方法或Ta

c# - 等待新任务 <T>( ... ) : Task does not run?

问题的延续here:在上述问题中,我有以下函数返回一个任务类型的对象(用于增量测试目的):privatestaticTaskGetInstance(){returnnewTask((Func>)(async()=>{awaitSimpleMessage.ShowAsync("TEST");returnnewobject();}));}当我调用awaitGetInstance();时,该函数被调用(并且我假设任务已返回,因为没有抛出异常)但任务就在那里。我只能猜测我做错了。我不希望此函数返回一个已经在运行的任务(即IMPERATIVE).如何异步运行此函数返回的任务?

c# - 我不能等待等待?

VisualStudio提示以下内容:publicRelayCommandSendRegistrationCommand{get;privateset;}publicasyncvoidSendRegistration(){HttpClientclient=newHttpClient();varresponse=awaitclient.GetStringAsync("url");//...todo}Cannotawait'System.Threading.Tasks.Task'我以为我以前做过这个,GetStringAsync不可等待? 最佳答案

c# - 如何在继续之前等待线程完成?

我有一些用于在.NETCF2.0上启动线程的代码:ThreadStarttStart=newThreadStart(MyMethod);Threadt=newThread(tStart);t.Start();如果我在循环中调用它,项目将完全乱序。如何在t.Start()之后引入等待,以便线程上的工作在代码继续之前完成?与手动创建线程相比,BeginInvoke/EndInvoke是否是更好的选择? 最佳答案 您需要对线程施加多少顺序?如果您只需要在代码继续之前完成循环中开始的所有工作,但您不关心循环中工作完成的顺序,那么调用Join